#include "junix.h"

void sig(int signo)
{
	if(signo==SIGINT)
	{
		printf("SIGINT\n");
	}
	else if(signo==SIGUSR1)
	{
		printf("SIGUSR1\n");
	}
	else if(signo==SIGUSR2)
	{
		sigset_t um;
		sigemptyset(&um);
		sigaddset(&um,SIGINT);
		sigaddset(&um,SIGUSR1);
		sigprocmask(SIG_UNBLOCK,&um,NULL);
	}
}

int main(int argc, char **argv)
{
	sigset_t mask;

	sigemptyset(&mask);
	sigaddset(&mask,SIGINT);
	sigaddset(&mask,SIGUSR1);

	if(signal(SIGUSR2,sig)==SIG_ERR)
		err_sys("signal");
	if(signal(SIGINT,sig)==SIG_ERR)
		err_sys("signal");
	if(signal(SIGUSR1,sig)==SIG_ERR)
		err_sys("signal");

	sigprocmask(SIG_BLOCK,&mask,NULL);

	while(1)
	{
		pause();
	}

	return 0;
}

